/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 *
 * @author Esperanza
 */
public class FVerMonedas implements CommandListener{
    private MiCartera midlet;
    private ControladorInterfaz controlador;
    private Form formonedas;
    private Command regresar, cambiarMonedaReferencia, nuevamoneda;
    private ChoiceGroup listamonedas;
    private Ticker tick;
    public int monedaSeleccionada=0;//el índice en un Choice group empieza por 0

    public FVerMonedas(MiCartera midlet, ControladorInterfaz controlador){
        //Guardo referencia al midlet con pantalla principal y controlador
        this.midlet=midlet;
        this.controlador=controlador;

        //Creo los objetos
        formonedas=new Form("Monedas");
        listamonedas=new ChoiceGroup("Lista Monedas",Choice.EXCLUSIVE);
        regresar=new Command("Atras",Command.BACK,1);
        cambiarMonedaReferencia=new Command("Cambiar MR", Command.OK, 1);
        nuevamoneda=new Command("Crear Nueva Moneda", Command.OK, 1);

        //Indicar moneda de referencia
        tick=new Ticker("Mi moneda de referencia es: "+ midlet.monedaReferencia);
        formonedas.setTicker(tick);

        //Enlazo y hago captura de evento regresar
        formonedas.addCommand(regresar);
        formonedas.addCommand(cambiarMonedaReferencia);
        formonedas.addCommand(nuevamoneda);
        formonedas.setCommandListener(this);

    }

    public void commandAction(Command c, Displayable d) {
        if (c==regresar){
            midlet.pantalla.setCurrent(midlet.pantallainicial);
        }else if (c==cambiarMonedaReferencia){
             monedaSeleccionada=listamonedas.getSelectedIndex();
             controlador.cambiaMonedaReferencia(this);
        }else if (c==nuevamoneda){
             controlador.nuevaMoneda();
        }
    }

    public void pintate(String[] lista){
        StringItem texto;
        String filamoneda;
        int i=0;
        
        texto=new StringItem("","Monedas soportadas con el valor respecto MR",Item.PLAIN);
        formonedas.append(texto);

        //Caluculo número de registros por tamaño de array
        double n=(-2+Math.sqrt(4+4*lista.length))/2;
        System.out.println("Número de n, número de registros calculados por array:"+String.valueOf(n));
        //Pasamos a entero redondeando hacia abajo
        int nentero=(int)n;

        //Incluimos lista de monedas a ChoiceGroup
        while (i<=lista.length-1){
            filamoneda=lista[i]+":"+lista[i+1];
            listamonedas.append(filamoneda, null);
            i=i+nentero+2;
        }

        //Ponemos el índice en la moneda de referencia
        listamonedas.setSelectedIndex(controlador.buscaMonedaRecordStore(midlet.monedaReferencia), true);

        //Añadimos ChoiceGroup al formulario de PantallaInicial con los gastos
        //y mostramos
        formonedas.append(listamonedas);
        midlet.pantalla.setCurrent(formonedas);
    }

    public void muestraAviso(){
        Alert alertaerror;

        alertaerror=new Alert("Alerta", "No has cambiado de Moneda de Referencia", null, AlertType.ERROR);
        alertaerror.setTimeout(Alert.FOREVER);//Alerta modal
        midlet.pantalla.setCurrent(alertaerror, formonedas);

    }
    public void avisoCambioMR(){
        Alert alerta;

        alerta=new Alert("Aviso", "Cangrulations!Has cambiado de MR: "+midlet.monedaReferencia, null, AlertType.INFO);
        alerta.setTimeout(Alert.FOREVER);//Alerta modal
        //Despues establecemos el form de pantallainicial
        midlet.pantalla.setCurrent(alerta, midlet.pantallainicial);

    }
}
